BIN:=main.exe			#最终文件
CC:=gcc					#编译工具
SRC:=$(shell ls *.c)	#所有.c文件	#命令行模式
#SRC:=$(wildcard *.c)	#所有.c文件 #make的函数模式
OBJ:=$(SRC:.c=.o)		#所有.o文件
LFLAGS:=-o				#链接选项
FLAGS:=-c				#编译选项
RM:=rm -f				#删除命令

#@ 不回显命令
#$@:$^ 目标文件:依赖文件
#$@ 目标文件 $^ 依赖文件
$(BIN):$(OBJ)						#链接生产.exe文件 #无.o文件，方法入栈，向下寻找
	@$(CC) $(LFLAGS) $@ $^ 	
	@echo "linking ... $^ to $@"
#% 通配符
#$< 将通配的文件依次处理
#%.c 展开当前目录下所有.c文件
#%.o 展开当前目录下所有.o文件
%.o:%.c								#汇编生成.o文件
	@$(CC) $(FLAGS) $<
	@echo "compling ... $< to $@"


.PHONY:c
c:
	@$(RM) $(OBJ) $(BIN)
	
m:
	@cat makefile

e:
	@./$(BIN)

v:
	@vim makefile

s:
	@cat $(SRC) 

cdgit:
	cd ~/gitee/study/202508Linux/8月

cpc:
	cp test.c ~/gitee/study/202508Linux/8月 
	
cpmake:
	cp makefile ~/gitee/study/202508Linux/8月

mvc:
	mv /home/rich/gitee/study/202508Linux/8月/test2.c 

